1. Field of the Invention
The present invention relates to video display memory operating in association with a central processing unit and more particularly to an apparatus and method for modifying image data storage addresses to enable rotation and scaling of bit-mapped images for display on a display device. The invention further relates to apparatus for reducing the impact of image manipulation on central processor resources.
2. Related Technical Art
In a conventional video image display system, such as the one illustrated in FIG. 2, bit-mapped images are stored in a memory array prior to display. That is, the image data is stored across an array of storage or memory address locations in memory which correspond to relative horizontal and vertical positions of the data within the output image. Each unit of data is stored at an address having a horizontal or "X" position or value, and a corresponding vertical or "Y" value.
As shown in FIG. 2, for both writing or storing data in video memory, as well as for subsequent data retrieval from memory, the data addresses can be easily selected using horizontal and vertical address counters, 11 and 12, respectively. These counters can be incremented with respect to their designated axis, so as to retrieve data by stepping through the memory array in synchronization with a particular display device 10.
The image data is prepared for transfer from memory 9 by a central processing unit 14, possibly using a video operations control circuit 8. A parameter register file 13, or similar data storage unit, can be used to store image parameters such as absolute horizontal and vertical coordinates, scale, angle and axis of rotation, etc. The image data is subsequently retrieved and presented visually in the same geometric relationship or sense, that is axial alignment and relative size, as it is stored in memory 9. If the image is to be altered, therefore, such as by re-scaling or rotating, the image data must first be retrieved and processed by CPU 14 or operations circuit 8, and then written or re-written into memory 9.
Unfortunately, this technique has several drawbacks. One problem is that the time required to retrieve, modify, and re-write the image data reduces the operating speed of the video system, which is very undesirable for modern computer systems. A second problem with this method is that modification of the display data by the CPU, directly or through an operations circuit, and re-writing the contents of display memory obliterates the original data, requiring additional processing to regain the original image data if it is desired at a later time. A third major problem is that it has not been possible to precisely control or provide image rotation and re-scaling operations that are properly synchronized with the pixel, raster, or frame unit timing of the display. As a result, smooth image rotation on a display with different angles of rotation in each frame, and images with realistic perspective projections which are achieved by using a different magnification rate at each pixel or raster unit, cannot be achieved.
A new method and apparatus is needed, therefore, which allows proper synchronization of image manipulations with the display device timing and achieves high speed, high precision image presentation at reasonably high resolutions.